ASP.NET Core এ API Controller তৈরি করা একটি গুরুত্বপূর্ণ অংশ, কারণ এটি HTTP রিকোয়েস্ট গ্রহণ এবং প্রক্রিয়া করে, এবং সঠিক HTTP রেসপন্স প্রদান করে। API Controller সাধারণত Web API এপ্লিকেশন তৈরি করতে ব্যবহৃত হয়, যেখানে ক্লায়েন্ট সাইডে JSON বা XML ফরম্যাটে ডাটা পাঠানো হয়।
ASP.NET Core-এ API Controller তৈরি করতে, সাধারণত ControllerBase
ক্লাস ইনহেরিট করা হয়, যা API Controller এর জন্য প্রয়োজনীয় মেথড এবং প্রপার্টি সরবরাহ করে।
কন্ট্রোলার ক্লাস তৈরি
ASP.NET Core API Controller তৈরি করতে প্রথমে একটি ক্লাস তৈরি করুন যা ControllerBase
ক্লাস ইনহেরিট করবে এবং [Route]
অ্যাট্রিবিউট দিয়ে URL রাউটিং কনফিগার করুন।
উদাহরণস্বরূপ, আমরা ProductsController
নামে একটি API Controller তৈরি করতে পারি, যা api/products
রাউটের জন্য রিকোয়েস্ট গ্রহণ করবে।
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private static List<Product> _products = new List<Product>
{
new Product { Id = 1, Name = "Product1", Price = 100 },
new Product { Id = 2, Name = "Product2", Price = 150 }
};
// GET: api/products
[HttpGet]
public IActionResult GetProducts()
{
return Ok(_products); // JSON রেসপন্স
}
// GET: api/products/1
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // 404 রেসপন্স
}
return Ok(product); // JSON রেসপন্স
}
}
Route
অ্যাট্রিবিউট ব্যবহার করে রাউটিং কনফিগার করুন। api/[controller]
সেন্টেন্সটি স্বয়ংক্রিয়ভাবে কন্ট্রোলারের নাম (ProductsController
) থেকে রাউটের নাম ডিডাক্ট করবে, অর্থাৎ, কন্ট্রোলারের নাম ProductsController
থাকলে রাউট হবে api/products
।GET
, POST
, PUT
, DELETE
। প্রত্যেকটি একশন HTTP রিকোয়েস্ট অনুযায়ী রেসপন্স প্রদান করবে।GET
মেথড ডেটা রিটার্ন করার জন্য।POST
মেথড নতুন ডেটা সেভ করার জন্য।PUT
মেথড ডেটা আপডেট করার জন্য।DELETE
মেথড ডেটা মুছে ফেলার জন্য।GET RequestGET
রিকোয়েস্টের মাধ্যমে ডেটা ফেচ করা হয়। নিচের উদাহরণে, আমরা GetProducts
এবং GetProduct
মেথড তৈরি করেছি যা বিভিন্ন প্রোডাক্টের তালিকা এবং নির্দিষ্ট একটি প্রোডাক্টের ডেটা রিটার্ন করবে।
[HttpGet]
public IActionResult GetProducts()
{
return Ok(_products); // সকল প্রোডাক্টের JSON রেসপন্স
}
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
return Ok(product); // নির্দিষ্ট প্রোডাক্টের JSON রেসপন্স
}
POST RequestPOST
রিকোয়েস্টের মাধ্যমে নতুন ডেটা তৈরি করা হয়। নিচের উদাহরণে, নতুন প্রোডাক্ট তৈরি করা হচ্ছে।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
_products.Add(product); // প্রোডাক্ট লিস্টে নতুন প্রোডাক্ট যোগ করা
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product); // 201 রেসপন্স
}
PUT RequestPUT
রিকোয়েস্টের মাধ্যমে ডেটা আপডেট করা হয়। নিচের উদাহরণে, একটি প্রোডাক্টের তথ্য আপডেট করা হচ্ছে।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, Product product)
{
var existingProduct = _products.FirstOrDefault(p => p.Id == id);
if (existingProduct == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
existingProduct.Name = product.Name; // প্রোডাক্ট আপডেট করা
existingProduct.Price = product.Price;
return NoContent(); // 204 রেসপন্স
}
DELETE RequestDELETE
রিকোয়েস্টের মাধ্যমে ডেটা মুছে ফেলা হয়। নিচের উদাহরণে, একটি প্রোডাক্ট মুছে ফেলা হচ্ছে।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
_products.Remove(product); // প্রোডাক্ট মুছে ফেলা
return NoContent(); // 204 রেসপন্স
}
ASP.Net Core এ বিভিন্ন ধরনের রেসপন্স প্রদান করার জন্য ActionResult
বা IActionResult
রিটার্ন টাইপ ব্যবহার করা হয়। এর মাধ্যমে বিভিন্ন HTTP স্ট্যাটাস কোড রিটার্ন করা যায়, যেমন:
এগুলি আপনাকে API কন্ট্রোলারে ক্লায়েন্টকে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করতে সহায়তা করে।
ASP.Net Core API Controller তৈরি করা অত্যন্ত সহজ। ControllerBase
ক্লাস ইনহেরিট করার মাধ্যমে API কন্ট্রোলার তৈরি করা যায় এবং HTTP রিকোয়েস্ট অনুযায়ী JSON রেসপন্স প্রদান করা যায়। ASP.Net Core API কন্ট্রোলারে GET
, POST
, PUT
, DELETE
রিকোয়েস্টের মাধ্যমে ডেটা ফেচ, সৃষ্টি, আপডেট এবং ডিলিট করা যায়। ActionResult
রিটার্ন টাইপ ব্যবহারের মাধ্যমে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করা সম্ভব।
common.read_more